package com.itheima.service;

import com.itheima.entity.PageResult;
import com.itheima.entity.QueryPageBean;
import com.itheima.pojo.Role;

import java.util.List;

/**
 * @author: Dream_die
 * @Date: 2020/4/15 23:30
 */
public interface RoleService {

    /**
     * 查询所有角色信息
     * @return 角色信息集合
     */
    List<Role> findAll();

    /**
     * 分页查询角色信息
     * @param queryPageBean 分页信息和查询条件
     * @return 页面数据
     */
    PageResult PageQuery(QueryPageBean queryPageBean);

    /**
     * 根据id查询角色信息
     * @param id 角色id
     * @return 角色信息
     */
    Role findById(Integer id);

    /**
     * 新增角色
     * @param role 角色信息
     * @param permissionIds 角色关联的权限id
     */
    void add(Role role, Integer[] permissionIds);

    /**
     * 删除中间表信息和角色信息
     * @param id 角色id
     */
    void delete(Integer id);

    /**
     * 修改角色信息
     * @param role 修改后的角色信息
     * @param permissionIds 所关联的权限id
     */
    void update(Role role, Integer[] permissionIds);

    /**
     * 通过角色id查询与其关联的权限id
     * @param id 角色id
     * @return 权限id集合
     */
    List<Integer> findPermissionIdsByUserId(Integer id);
}
